-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce github action for CI #572
Conversation
The Travis-CI checks itself are still running https://travis-ci.org/github/mozilla/TTS. |
CI is still running but not a part of Github anymore for a reason I don't know. So I close this. |
I just saw this. The current UX of the CI is not great (https://github.com/mozilla/TTS/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc#issuecomment-739447469). What are the reasons to stick to travis? |
There is no particular reason. I just wanted to keep it as it was working. But now I see it makes sense to move on. |
@Mic92 can we merge this one upon your review? It looks simpler and just a single file change. Do you see any particular difference in comparison to your PR? |
.github/workflows/test.yml
Outdated
python3 setup.py egg_info | ||
python3 -m pip install -e . | ||
- name: Lint check | ||
if: github.event_name == 'pull_request' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a direction translation of
Line 7 in 88bb20e
if [[ ( "$TRAVIS_PULL_REQUEST" != "false" ) && ( "$TEST_SUITE" == "lint" ) ]]; then |
but I don't think limiting linting that way is smart.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would also suggest:
if: github.event_name == 'pull_request' |
because otherwise people doing pull requests might also have to fix linting errors that were introduced in the branches itself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but if there is a linting error, it shouldn't pass the test anyway. So there should be no lining error in a branch that a PR is going on.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This assumes that the linter output is always the same. However new linter versions can bring new checks and errors
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am fine with applying these new checks and errors. Do you see any downside in that ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Direct pushes to master
/dev
that contain linting errors will put the CI in an error state, but at least they will be visible. I don't see downsides that should prevent this.
Rebased and rescoped to Python 3.6-3.8. Also dropped Travis-CI. Now the two pull requests should be more comparable. |
This one also looks fine. I would still include https://github.com/Mic92/TTS/blob/ci/.github/dependabot.yml to automatically update github actions (usually fixes bit-rot) and also cherry-pick https://github.com/Mic92/TTS/blob/ci/pyproject.toml because this way one can do |
what is the exact use case of |
The problem is that setup.py already imports numpy/cython and hence make it impossible to add a build time dependency on both. A different option would be to completely drop |
I'm not sure how the FWIW: I do think that
With |
for But I see the point of using |
I don't think this can be done by using a single requirements.txt, if that is what you are asking. |
Calling setup.py directly has the same issue as
|
I meant in general is there any other way to define setup.py deps than If you think .toml is the best way then I think we can include it as it is useful for CI and first-time installs as you've indicated. |
According to pypa/pip#2381 (comment) |
Not as far as I know: pypa/pip#2381 |
Updated CI action can be seen here https://github.com/mweinelt/TTS/runs/1510390094. Python 3.6 fails because recent numpy versions require Python 3.7, see https://github.com/numpy/numpy/blob/a3c09377e80a37deedc486ec30a7e852b7a8e564/setup.py#L475. |
@mweinelt I also noticed this here: #591 (comment) |
I tried pinning https://github.com/mweinelt/TTS/runs/1510479798?check_suite_focus=true |
I think considering Debian Stable already has Python 3.7 dropping support for Python 3.6 wouldn't be a big loss. |
.github/workflows/test.yml
Outdated
python3 setup.py egg_info | ||
python3 -m pip install -e . | ||
- name: Lint check | ||
if: github.event_name == 'pull_request' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am fine with applying these new checks and errors. Do you see any downside in that ?
I'd prefer to keep supporting 3.6 |
I don't see why it forces to install numpy 1.20 |
Reading setup.py will import numpy already, hence pip has no way to figure out what dependencies are needed.
Opened up a bug report over at pypa/pip#9239 including a minimal reproducer. Also opened up an issue over at pyworld, so maybe they can release a version with a proper environment pin, thereby resolving the situation. JeremyCCHsu/Python-Wrapper-for-World-Vocoder#59 |
Explanation of whats happening: pypa/pip#9239 (comment). I guess this broke, when numpy released the first version incompatible with Python 3.6. So we currently have no way until pyworld pushes a fix. I opened JeremyCCHsu/Python-Wrapper-for-World-Vocoder#59 to get that process started. Meanwhile I fixed up the lint step and a few issues have accumulated. https://github.com/mweinelt/TTS/runs/1511860335?check_suite_focus=true |
Numpy starting with 1.20 has dropped support for Python 3.6.
Travis is no longer free btw: https://news.ycombinator.com/item?id=25338983 |
I think it is ready to merge than give that travis is not an option any more. Anything else before merge ? |
I just realized that Github Actions are not allowed by Mozilla. Now I try to find a workaround. |
or do you have any other suggestions as a CI alternative for open-source? |
I guess I go for Circle CI |
Ah, meh.
Not really. I hope once the issues with pyworld are fixed we can integrate the pyproject.toml changes. |
Sorry for being unaware of it feel free to introduce pyproject.toml once it is the right time. |
Forcing do_trim_silence to False in the extract TTS script
It seemed to me like Travis-CI checks are not working anymore. I'm aware of the new pricing policy they introduced recently and suspected it might be due to that.
The CI last ran somewhere mid-october.
Since this project is hosted on GitHub, I believe their actions feature might be a good fit for the time being. So I started to port the travis tests to the best of my understanding. I hope that is alright.
You can look at the current state over here: https://github.com/mweinelt/TTS/actions/runs/363907718
There is currently the following issue, that was introduced in 39c71ee:
I'll happyily rebase once this fix has hit the dev branch, so we can check if this works.